#ifndef __ECONOMY_PLUGIN_H__
#define __ECONOMY_PLUGIN_H__

#include "Expand/IPlugin.h"

namespace PocketSurvival
{
    class GameManager;
}

using namespace PocketSurvival;

namespace Economy
{
    class EconomyAPI;
    class EconomyHome;
    class EconomyLand;
    class EconomyShop;

    class EconomyPlugin : public IPlugin
    {
    private:
        EconomyAPI *m_economyAPI;
        EconomyHome *m_economyHome;
        EconomyLand *m_economyLand;
        EconomyShop *m_economyShop;

    public:
        static const std::string PluginDataDirectory;

        EconomyPlugin();

        virtual const std::string &getPluginName() override;
        virtual const std::string &getIntroduce() override;
        virtual uint32_t getUseAuthLevel() override;
        virtual AuthDisplayType getDisplayType() override;
        virtual void processCmd(ChatObj &chatObj, std::vector<std::string> &cmdDataVec) override;
        virtual void getCmds(std::vector<std::string> &cmdVec) override;
        virtual void load() override;
        virtual void save() override;
    };
}

#endif
